home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / arm / plat-s3c / include / plat / debug-macro.S next >
Encoding:
Text File  |  2008-12-24  |  1.6 KB  |  76 lines

  1. /* linux/include/asm-arm/plat-s3c/debug-macro.S
  2.  *
  3.  * Copyright 2005, 2007 Simtec Electronics
  4.  *    http://armlinux.simtec.co.uk/
  5.  *    Ben Dooks <ben@simtec.co.uk>
  6.  *
  7.  * This program is free software; you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 2 as
  9.  * published by the Free Software Foundation.
  10. */
  11.  
  12. #include <plat/regs-serial.h>
  13.  
  14. /* The S3C2440 implementations are used by default as they are the
  15.  * most widely re-used */
  16.  
  17.     .macro fifo_level_s3c2440 rd, rx
  18.         ldr    \rd, [ \rx, # S3C2410_UFSTAT ]
  19.         and    \rd, \rd, #S3C2440_UFSTAT_TXMASK
  20.     .endm
  21.  
  22. #ifndef fifo_level
  23. #define fifo_level fifo_level_s3c2410
  24. #endif
  25.  
  26.     .macro  fifo_full_s3c2440 rd, rx
  27.         ldr    \rd, [ \rx, # S3C2410_UFSTAT ]
  28.         tst    \rd, #S3C2440_UFSTAT_TXFULL
  29.     .endm
  30.  
  31. #ifndef fifo_full
  32. #define fifo_full fifo_full_s3c2440
  33. #endif
  34.  
  35.     .macro    senduart,rd,rx
  36.         strb     \rd, [\rx, # S3C2410_UTXH ]
  37.     .endm
  38.  
  39.     .macro    busyuart, rd, rx
  40.         ldr    \rd, [ \rx, # S3C2410_UFCON ]
  41.         tst    \rd, #S3C2410_UFCON_FIFOMODE    @ fifo enabled?
  42.         beq    1001f                @
  43.         @ FIFO enabled...
  44. 1003:
  45.         fifo_full \rd, \rx
  46.         bne    1003b
  47.         b    1002f
  48.  
  49. 1001:
  50.         @ busy waiting for non fifo
  51.         ldr    \rd, [ \rx, # S3C2410_UTRSTAT ]
  52.         tst    \rd, #S3C2410_UTRSTAT_TXFE
  53.         beq    1001b
  54.  
  55. 1002:        @ exit busyuart
  56.     .endm
  57.  
  58.     .macro    waituart,rd,rx
  59.         ldr    \rd, [ \rx, # S3C2410_UFCON ]
  60.         tst    \rd, #S3C2410_UFCON_FIFOMODE    @ fifo enabled?
  61.         beq    1001f                @
  62.         @ FIFO enabled...
  63. 1003:
  64.         fifo_level \rd, \rx
  65.         teq    \rd, #0
  66.         bne    1003b
  67.         b    1002f
  68. 1001:
  69.         @ idle waiting for non fifo
  70.         ldr    \rd, [ \rx, # S3C2410_UTRSTAT ]
  71.         tst    \rd, #S3C2410_UTRSTAT_TXFE
  72.         beq    1001b
  73.  
  74. 1002:        @ exit busyuart
  75.     .endm
  76.